package main

import (
	"fmt"
)

func fstr(a string) {
	a = "123" //这里是值拷贝所以不能对函数外的字符串做出修改
}
func fstr1(a *string) {
	*a = "123" //传引用， 可以对函数外的字符串修改
}
func fstr2(a string) {
	var r = []rune(a) //这里是值拷贝所以不能对函数外的字符串做出修改
	r[0] = '_'
	a = string(r)
}
func main() {
	var s = "abc"
	fstr(s)
	fmt.Println(s) //abc
	fstr1(&s)
	fmt.Println(s) //123
	fstr2(s)
	fmt.Println(s) //123
}
